package com.sea.struct.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(value= {ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface FieldStruct {

	/**
	 * 解析顺序
	 * @return
	 */
	int sort();
	/**
	 * 字节长度 默认1byte
	 * @return
	 */
	int value() default 1;

	/**
	 * 自定义长度标识（长度可变）:false必须设置value定义值的长度，true根据传入的值.getBytes().length获取值的长度
	 * @return
	 */
	boolean customize() default false;
	
	/**
	 * 数据类型 默认BIN
	 * @return
	 */
	Type type() default Type.BIN;
	
	
	public enum Type {
		BIN(0),
		BCD(1),
		ASCII(2);
		private final int value;
		Type(int value) { this.value = value; }
		public int value() { return this.value; }
	}
	
}
